/**
* Copyright (c) 2015, 爱wifi（版权声明）
*
* @file option.h
* @brief 文件的简单介绍
*
* 参数解析
*
* @author: yuhaiyang
* @date: 2016/2/26
*/

#ifndef OPTION_H
#define OPTION_H

#include <string>
#include <map>
#include <getopt.h>


/**
 * @brief OptionMap
 * first command
 * second value
 */
typedef std::map<std::string,std::string> OptionMap;



class COptions
{
public:
    COptions( int argc, char** argv );
    COptions( const COptions& other ) = delete;
    COptions& operator= ( const COptions& other ) = delete;


    /**
     * @brief find
     * @param name
     * @return 找到了返回值，找不到返回空值
     */
    std::string find( const std::string& name );


private:
    static const char* const shortOptions;

    static struct option longOptions[];

    OptionMap _options;		///< 存放 option value 键值对
};

#endif // OPTION_H

